package maxProduct;

import java.util.Comparator;
import java.util.PriorityQueue;

public class Solution {
    public int maxProduct(int[] nums) {
        // 思路 找到最大的两个数 快速选择算法
        int max1 = Integer.MIN_VALUE;
//        int max2 = Integer.MIN_VALUE;
//        for (int i = 0; i < nums.length; i++) {
//            if(nums[i]>max1){
//                max2 = max1;
//                max1 = nums[i];
//            }else if(nums[i]>max2){
//                max2 = nums[i];
//            }
//        }
//        return (max1-1)*(max2-1);

        // 思路二 堆排序 找到前两个最大的值
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>((o1, o2) -> o2-o1);
        for (int i = 0; i < nums.length; i++) {
            priorityQueue.add(nums[i]);
        }
        return (priorityQueue.poll()-1)*(priorityQueue.poll()-1);
    }
}
